//引入express第三方模块
const express=require('express');
//引入连接池模块
const pool=require('../pool.js');
//console.log(pool);测试是否成功
//创建路由器对象
const r=express.Router();

//添加路由
//1.注册用户（post/reg）
//接口方式：http://127.0.0.1:8080/v1/users/reg
//请求方式: post
r.post('/reg',(req,res,next)=>{ //必须加斜杠/，否则数据库连接不成功
	var obj=req.body;
	console.log(obj);
	//验证各项是否为空
	if (!obj.uname ){
		res.send({code:401,msg:'用户名不能为空'});
		return;//阻止执行后面的send，后端会报错，不能向客户端发两个send
	}
	if (!obj.upwd ){
		res.send({code:402,msg:'密码不能为空'});
		return;
	}
	if (!obj.email ){
		res.send({code:403,msg:'邮箱不能为空'});
		return;
	}
	if (!obj.phone ){
		res.send({code:404,msg:'手机号不能为空'});
		return;
	}
	//验证手机号码格式
	var p=/^1[3-9]\d{9}$/;
	//如果用户输入错误，提示'手机号码格式不正确'
	if(!p.test(obj.phone)) {
		res.send({code:405,msg:'手机号码格式不正确'});
		return;
	}
	//执行SQL命令，将数据插入到emp表中
	pool.query('insert into xz_user set?',[obj],(err,result)=>{
	if(err) {
		next(err);
		return;
	}
	console.log(result);
	//如果用户输入正确，提示'格式正确'
	res.send({code:200,msg:'注册成功'});
	})
});
//注册结束

//2.登录用户（post/login）
//接口方式：http://127.0.0.1:8080/v1/users/login
//请求方式: post
r.post('/login',(req,res,next)=>{
	//2.1获取post传递的参数
	var obj=req.body;
	console.log(obj);
	//验证各项是否为空
	if (!obj.uname ){
		res.send({code:401,msg:'用户名不能为空'});
		return;//阻止执行后面的send，后端会报错，不能向客户端发两个send
	}
	if (!obj.upwd ){
		res.send({code:402,msg:'密码不能为空'});
		return;
	}
	//执行SQL命令，将数据插入到emp表中
	pool.query('select * from xz_user where uname=? and upwd=?',[obj.uname,obj.upwd],(err,result)=>{
		if(err) {
			next(err);
			return; 
		}
		console.log(result);
		if(result.length===0) res.send({code:201,msg:'登录失败'});
		else res.send({code:200,msg:'登录成功'});
	});
});
//登录结束

//3.删除用户（delete/编号）
//接口方式：http://127.0.0.1:8080/v1/users/4
//请求方式: post
r.delete('/:uid',(req,res,next)=>{
	//3.1获取路由传递的值
	var obj=req.params;
	console.log(obj);
	//3.2执行SQL命令，将数据从emp表删除
	pool.query('delete from xz_user where uid=?',[obj.uid],(err,result)=>{
		if(err) {
			next(err);
			return; 
		}
		console.log(result);//结果是对象，如果对象下的affectedRows的值是0，说明删除失败，否则删除成功
		if(result.affectedRows===0){
			res.send({code:201,msg:'没得删了'})
		}
		else res.send({code:200,msg:'删除成功'});
	});
});

//4.修改用户（put/）
//接口方式：http://127.0.0.1:8080/v1/users
//请求方式: put 传一项带编号用put，传多项不带编号用body传
r.put('/',(req,res,next)=>{
	//4.1获取post（body）
	var obj=req.body;
	console.log(obj);
	var i=400;
	for(var k in obj){
		//k 属性名  obj[] 属性值
		//console.log(k,obj[k]);
		//如果属性值为空，提示属性名这项不能为空
		i++;
		if(!obj[k]){
			res.send({code:i,msg:k+'不能为空'});
			return;
		}
	}
	//4.2执行SQL命令，将数据从emp表删除
	pool.query('update xz_user set? where uid=?',[obj,obj.uid],(err,result)=>{
		if(err) {
			next(err);
			return; 
		}
		if(result.affectedRows===0) {res.send({code:201,msg:'修改失败'})}
		else res.send({code:200,msg:'修改成功'});
	});
});


//删除结束

//导出路由器对象
module.exports=r;

